package com.yunsc.store.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yunsc.store.dto.CartParamsDTO;
import com.yunsc.store.entity.YunscCartEntity;

import java.util.List;
import java.util.Map;

/**
 * 购物车记录表
 *
 * @author adan
 * @email 2028038953@qq.com
 * @date 2024-04-22 11:35:52
 */
public interface YunscCartService extends IService<YunscCartEntity> {

    /**
     * 添加购物车
     *
     * @param userId  用户id
     * @param param   购物车参数
     * @param storeId 当前门店id
     */
    void addCart(Integer userId, CartParamsDTO param, Integer storeId);

    /**
     *  统计用户购物车商品数量
     * @param userId  用户id
     * @return  购物车商品数量
     */
    int queryUserCartCount(Integer userId);

    /**
     *  查询用户购物车
     * @param userId  用户id
     * @return  用户购物车商品列表
     */
    Map<String, Object> queryUserCart(Integer userId);

    /**
     *  更新购物车商品数量
     * @param userId  用户id
     * @param param   购物车参数
     * @return  返回当前购物车商品数量
     */
    Integer updateCartById(Integer userId, CartParamsDTO param);

    /**
     *  删除购物车商品
     * @param userId  用户id
     * @param cartIds  购物车商品id列表
     * @return  返回删除的商品数量
     */
    Integer clearUserCart(Integer userId, List<Integer> cartIds);

}

